//package com.icangya.service.impl;
//
//import com.alibaba.fastjson.JSONObject;
//import com.icangya.DAO.*;
//import com.icangya.Value.FootBall;
//import com.icangya.domain.*;
//import com.icangya.service.IFootUserService;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.math.BigDecimal;
//import java.sql.Timestamp;
//import java.text.DecimalFormat;
//import java.time.LocalDateTime;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//@Service("FootUserServiceImpl")
//public class FootUserServiceImpl implements IFootUserService {
//
//    @Autowired
//    private IUserFootDAO iUserDAO;
//    @Autowired
//    private IBalanceDAO iBalanceDAO;
//    @Autowired
//    private ICommissionRecordDAO iCommissionRecordDAO;
//    @Autowired
//    private ICashRegisterDAO iCashRegisterDAO;
//    @Autowired
//    private IRechargeRecordDAO iRechargeRecordDAO;
//    @Autowired
//    private ICommissionFootDAO iCommissionFootDAO;
////    @Autowired
////    private IExpendRecordDAO iExpendRecordDAO;
//    @Autowired
//    private IProxyLevelDAO iProxyLevelDAO;
//    @Autowired
//    private IBadUserDAO iBadUserDAO;
//
//    @Autowired
//    private  IPayBeanDAO iPayBeanDAO;
//
//
//
//    private Logger logger = LoggerFactory.getLogger(this.getClass());
//    /*
//    * 查询用户的信息
//    */
//    @Override
//    public JSONObject selectUserByOpnId(String openId) {
//        JSONObject jsonObject = new JSONObject();
//        Object[] obj = iUserDAO.getNickName(openId);
//
//        if (obj == null) {
//            return null;
//        }
//        jsonObject.put("nickName",obj[0]);//获得用户昵称
//        jsonObject.put("headimgurl",obj[1]);//用户头像
//        jsonObject.put("id",obj[2]);//用户id
//        jsonObject.put("openid",openId);
//        DecimalFormat format=new DecimalFormat("#0.##");
//        try {
//            double balanceMoney = iBalanceDAO.getBanlanceByOpenId(openId).getMoney();
//            jsonObject.put("balanceMoney", balanceMoney);
//            double commMoney = iCommissionFootDAO.selectUserCommis(openId).getMoney();
//            jsonObject.put("commMoney", commMoney);//用户佣金
//           jsonObject.put("count",3-iCashRegisterDAO.getCountCashRecord(openId));//提现剩余次数
//        }catch (NullPointerException e){
//            return null;
//        }
//        return  jsonObject;
//    }
//
//
//
//    //我的页面获取用户详情
////    @Override
////    public JSONObject getUserMessage(String openId) {
////        JSONObject jsonObject = new JSONObject();
//////        User user=iUserDAO.selectUserByOpenId(openId);
////        DecimalFormat format=new DecimalFormat("#0.##");
////        double balanceMoney=iBalanceDAO.getBanlanceByOpenId(openId).getMoney();
////
////        jsonObject.put("balanceMoney",balanceMoney);
////
////        double expendMoney=iExpendRecordDAO.getExpendMoneyByOpenId(openId);
////        jsonObject.put("expendMoney",expendMoney);//用户支出金额
////        jsonObject.put("commMoney",iCommissionFootDAO.selectUserCommis(openId).getMoney());//用户佣金
////        jsonObject.put("openId",openId);
////        jsonObject.put("cashCount", iCashRegisterDAO.getCountCashRecord(openId));//提现次数
////
////        return jsonObject;
////    }
//
//    @Override
//    public void saveBadUser(BadUserDO badUserDO) {
//        iBadUserDAO.save(badUserDO);
//    }
//
//    //
////// 查询代理团队的客服二维码
////    @Override
////    public AgentImage getAgentImg(long proxyId) {
////
////        iAgentImageDAO.getAgentImageByAgentId(proxyId);
////
////
////
////        return null;
////    }
//
//    @Override
//    public User getByOpenId(String openId) {
//        return iUserDAO.selectUserByOpenId(openId);
//    }
//
//
//    /*
//    * 添加用户的信息
//    */
//    @Override
//    public User addUser(User user) {
//        return iUserDAO.get(iUserDAO.save(user));
//    }
//
//    @Override
//    public User updateUser(User userDO) {
//        if (iUserDAO.update(userDO))
//            return userDO;
//        return null;
//
//    }
//
//    @Override
//    public User getUserByUid(long uid) {
//        return iUserDAO.selectUserByUid(uid);
//    }
//
//    @Override
//    public ProxyLevel getProxyLevel(Long uid) {
//        return iProxyLevelDAO.getSuperiorUserByUid(uid);
//    }
//
//    @Override
//    public ProxyLevel saveProxyLevel(ProxyLevel proxyLevel) {
//        return iProxyLevelDAO.get(iProxyLevelDAO.save(proxyLevel));
//    }
//
//
//
//    @Override
//    public JSONObject getProxyNum(long uid) {
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("first", iProxyLevelDAO.getFirstCount(uid));
//        jsonObject.put("second", iProxyLevelDAO.getSecondCount(uid));
//        jsonObject.put("third", iProxyLevelDAO.getThirdCount(uid));
//        jsonObject.put("fourth",iProxyLevelDAO.getFourthCount(uid));
//        jsonObject.put("five",iProxyLevelDAO.getFiveCount(uid));
//        jsonObject.put("six",iProxyLevelDAO.getSixCount(uid));
//        return jsonObject;
//    }
//
//
//
//
//    @Override
//    public Boolean cash(String openId,double money ) {
//
////        Commission commission=  iCommissionFootDAO.selectUserCommis(openId);
////        JSONObject jsonObject=new JSONObject();
//        //判断用户的余额是否充足
//       // if(commission.getMoney()>=money){
//          //  double cashMoney= commission.getMoney()-money;
////            int result=  iCommissionFootDAO.changeMoney(openId,0);
////            if(result>0){
//
//                //添加用户提现记录
//                iCashRegisterDAO.save( new CashRegister(openId,money, new Timestamp( new Date().getTime()),0));//0:提现成功
//                return true;
//
////            }
//       // }
//
////        return false;
//
//
//
//    }
//
//    @Override
//    public Boolean rechargeRecord(String openId, Double money) {
//
//        Balance balance=iBalanceDAO.getBanlanceByOpenId(openId);
////            balance.setMoney(balance.getMoney()+money);
//          boolean bool=  iBalanceDAO.update(balance);
////       int result= iBalanceDAO.updateBanlanceByMoney(openId,money);
//       if(bool){
//           //充值成功，添加用户的充值记录
//           iRechargeRecordDAO.save(new RechargeRecord(openId,money, new Timestamp( new Date().getTime()),0));
//           //充值成功之后给上级用户追加佣金
////            addAgencyComm(openId,money);
//           return true;
//       }
//       //充值失败，添加用户的充值记录
//       iRechargeRecordDAO.save(new RechargeRecord(openId,money, new Timestamp( new Date().getTime()),1));
//        return false;
//    }
//
////返佣
//@Override
//public void addAgencyComm(String openId,double amountMoney){
//    //获取用户的代理信息
//    ProxyLevel proxyLevel=  iProxyLevelDAO.getSuperiorUserByOpenId(openId);
//
//    if(proxyLevel!=null){
//        //几级用户的信息
//        long first=proxyLevel.getFirstLevel();
//        long second=proxyLevel.getSecondLevel();
//        long third=proxyLevel.getThirdLevel();
//        long fourth=proxyLevel.getFourthLevel();
//        long five=proxyLevel.getFiveLevel();
//        long six=proxyLevel.getSixLevel();
//
//        //一级用户id不为0时，设置一级用户的佣金记录和添加返现佣金
//        //返现的金额
//        double returnMoney=0.0;
//        if(first!=0){
//
//            returnMoney=amountMoney* FootBall.first_level;
//            levelUtil(returnMoney,first); //返佣的公用方法
//            //二级用户id不为0时，设置二级用户的佣金记录和添加返现佣金
//            if(second!=0){
//                //二级返现的金额
//                returnMoney=amountMoney* FootBall.second_level;
//                levelUtil(returnMoney,second); //返佣的公用方法
//
//                //三级用户id不为0时，设置三级用户的佣金记录和添加返现佣金
//                if(third!=0){
//                    //三级返现的金额
//                    returnMoney=amountMoney* FootBall.third_level;
//                    levelUtil(returnMoney,third); //返佣的公用方法
//
//                    if(fourth!=0){
//                        returnMoney=amountMoney* FootBall.third_level;
//                        levelUtil(returnMoney,fourth); //返佣的公用方法
//
//                        if(five!=0){
//                            returnMoney=amountMoney* FootBall.third_level;
//                            levelUtil(returnMoney,five); //返佣的公用方法
//                            if(six!=0){
//                                returnMoney=amountMoney* FootBall.third_level;
//                                levelUtil(returnMoney,six); //返佣的公用方法
//                            }
//                        }
//
//                    }
//                }
//
//
//            }
//
//        }
//
//
//    }
//
//}
//    /**
//     *几级用户返佣的方法
//     * @param returnMoney
//     * @param levelId   上级用户的id
//     */
//    public void levelUtil(Double returnMoney,long levelId){
//        Commission commission=new Commission();
//        Timestamp now = Timestamp.valueOf(LocalDateTime.now());
//        BigDecimal big=new BigDecimal(returnMoney);
//        returnMoney=big.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//设置添加到数据库的金额只包含俩位小数
//
//        String levelOpenId=iUserDAO.selectUserByUid(levelId).getOpenId();//一级用户的信息
//        //增加一级用户的佣金记录
//        iCommissionRecordDAO.save(new CommissionRecord(levelOpenId, "好友奖励",returnMoney,now));
//        commission= iCommissionFootDAO.selectUserCommis(levelOpenId);
//        commission.setMoney(commission.getMoney()+returnMoney);
////        returnMoney= commission.getMoney()+returnMoney;
//        //增加一级用户的金额
//        boolean result= iCommissionFootDAO.update(commission);
//    }
//
////    public void addAgencyComm(String openId,double amountMoney){
////        Commission commission=null;
////        //获取用户的代理信息
////        ProxyLevel proxyLevel=  iProxyLevelDAO.getSuperiorUserByOpenId(openId);
////
////        if(proxyLevel!=null){
////
////            //几级用户的信息
////            long first=proxyLevel.getFirstLevel();
////            long second=proxyLevel.getSecondLevel();
////            long third=proxyLevel.getThirdLevel();
////            long fourth=proxyLevel.getFourthLevel();
////            long five=proxyLevel.getFiveLevel();
////            long six=proxyLevel.getSixLevel();
////
//////            Timestamp now = Timestamp.valueOf(LocalDateTime.now());
////            //一级用户id不为0时，设置一级用户的佣金记录和添加返现佣金
////            //返现的金额
////            double returnMoney=0.0;
////            if(first!=0){
////
////                returnMoney=amountMoney* FootBall.first_level;
//////                BigDecimal big=new BigDecimal(returnMoney);
//////                returnMoney=big.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//设置添加到数据库的金额只包含俩位小数
//////
//////                String firstOpenId=iUserDAO.selectUserByUid(first).getOpenId();//一级用户的信息
//////                //增加一级用户的佣金记录
//////                iCommissionRecordDAO.save(new CommissionRecord(firstOpenId, StaticValue.AGENCYCOMM,returnMoney,now));
//////                commission= iCommissionFootDAO.selectUserCommis(firstOpenId);
//////                returnMoney= commission.getMoney()+returnMoney;
//////                //增加一级用户的金额
//////                int result= iCommissionFootDAO.changeMoney(firstOpenId,returnMoney);
////
////
////
////
////                //二级用户id不为0时，设置二级用户的佣金记录和添加返现佣金
////                if(second!=0){
////                    //二级返现的金额
////                    returnMoney=amountMoney* FootBall.second_level;
//////                    BigDecimal big2=new BigDecimal(returnMoney);
//////                    returnMoney=big2.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//设置添加到数据库的金额只包含俩位小数
//////
//////                    String secondOpenId=iUserDAO.selectUserByUid(second).getOpenId();//二级用户的信息
//////                    //增加二级用户的佣金记录
//////                    iCommissionRecordDAO.save(new CommissionRecord(secondOpenId, StaticValue.AGENCYCOMM,returnMoney,now));
//////                    commission= iCommissionFootDAO.selectUserCommis(secondOpenId);
//////                    returnMoney= commission.getMoney()+returnMoney;
//////                    //增加二级用户的金额
//////                    iCommissionFootDAO.changeMoney(secondOpenId,returnMoney);
////
////                    //三级用户id不为0时，设置三级用户的佣金记录和添加返现佣金
////                    if(third!=0){
////                        //三级返现的金额
////                        returnMoney=amountMoney* FootBall.third_level;
//////                        BigDecimal big3=new BigDecimal(returnMoney);
//////                        returnMoney=big3.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//设置添加到数据库的金额只包含俩位小数
//////
//////                        String thirdOpenId=iUserDAO.selectUserByUid(third).getOpenId();//三级用户的信息
//////                        //添加三级用户的佣金记录
//////                        iCommissionRecordDAO.save(new CommissionRecord(thirdOpenId,StaticValue.AGENCYCOMM,returnMoney,now));
//////                        commission= iCommissionFootDAO.selectUserCommis(thirdOpenId);
//////                        returnMoney= commission.getMoney()+returnMoney;
//////                        //增加三级用户的佣金金额
//////                        iCommissionFootDAO.changeMoney(thirdOpenId,returnMoney);
////                    }
////
////
////                }
////
////            }
////
////
////        }
////
////
////    }
//
//
//
//    @Override
//    public List<User> getAllUser() {
//
//        return iUserDAO.getAllUser();
//
//    }
//
//    //查询所有用户信息
//    @Override
//    public List<User> findAllUser() {
//
//        List<Object[]> objs= iUserDAO.findAllUser();
//        if(objs==null)
//            return null;
//
//        List<User> list=new ArrayList<User>();
////        String openId, String nickName, String headImgUrl, Timestamp createTime, Long parentId, String qrCode, Long proxyId
////        u.openId,u.nickName,u.headImgUrl,u.createTime,u.parentId,u.proxyId
//        for (Object[] obj:objs) {
//            User user=new User();
//            user.setOpenId(obj[0].toString());
//            user.setNickName(obj[1].toString());
//            user.setHeadImgUrl(obj[2].toString());
//            user.setCreateTime(Timestamp.valueOf(obj[3].toString()));
//            user.setParentId(Long.valueOf(obj[4].toString()));
//            user.setProxyId(Long.valueOf(obj[5].toString()));
//            user.setQrCode("");
//            list.add(user);
//        }
//        return list;
//    }
//
//
//
//    @Override
//    public Object[] getNickName(String openId) {
//        return iUserDAO.getNickName(openId);
//    }
//
//
//    //用户今天还能提现的额度
//    @Override
//    public double cashMoneyCount(String openId) {
//       long count= iCashRegisterDAO.getCountCashRecord(openId);
////       double rechargeMoney=iRechargeRecordDAO.getSumRechargeMoney(openId);
////       double money=rechargeMoney*2 - cashMoney;
////        logger.info("用户今天所能提现的额度 "+money);
//        return count;
//    }
//
//    //获取配置支付的信息记录
//    @Override
//    public PayBean getPaybeanByStatus(){
//        return iPayBeanDAO.getPayBeanByStatus("1");
//    }
//
//
//}
